package com.crm.model.entity.MessageManager;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MessageExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MessageExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andMessageIdIsNull() {
            addCriterion("message_id is null");
            return (Criteria) this;
        }

        public Criteria andMessageIdIsNotNull() {
            addCriterion("message_id is not null");
            return (Criteria) this;
        }

        public Criteria andMessageIdEqualTo(String value) {
            addCriterion("message_id =", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdNotEqualTo(String value) {
            addCriterion("message_id <>", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdGreaterThan(String value) {
            addCriterion("message_id >", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdGreaterThanOrEqualTo(String value) {
            addCriterion("message_id >=", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdLessThan(String value) {
            addCriterion("message_id <", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdLessThanOrEqualTo(String value) {
            addCriterion("message_id <=", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdLike(String value) {
            addCriterion("message_id like", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdNotLike(String value) {
            addCriterion("message_id not like", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdIn(List<String> values) {
            addCriterion("message_id in", values, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdNotIn(List<String> values) {
            addCriterion("message_id not in", values, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdBetween(String value1, String value2) {
            addCriterion("message_id between", value1, value2, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdNotBetween(String value1, String value2) {
            addCriterion("message_id not between", value1, value2, "messageId");
            return (Criteria) this;
        }

        public Criteria andSenderIdIsNull() {
            addCriterion("sender_id is null");
            return (Criteria) this;
        }

        public Criteria andSenderIdIsNotNull() {
            addCriterion("sender_id is not null");
            return (Criteria) this;
        }

        public Criteria andSenderIdEqualTo(String value) {
            addCriterion("sender_id =", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdNotEqualTo(String value) {
            addCriterion("sender_id <>", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdGreaterThan(String value) {
            addCriterion("sender_id >", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdGreaterThanOrEqualTo(String value) {
            addCriterion("sender_id >=", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdLessThan(String value) {
            addCriterion("sender_id <", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdLessThanOrEqualTo(String value) {
            addCriterion("sender_id <=", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdLike(String value) {
            addCriterion("sender_id like", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdNotLike(String value) {
            addCriterion("sender_id not like", value, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdIn(List<String> values) {
            addCriterion("sender_id in", values, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdNotIn(List<String> values) {
            addCriterion("sender_id not in", values, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdBetween(String value1, String value2) {
            addCriterion("sender_id between", value1, value2, "senderId");
            return (Criteria) this;
        }

        public Criteria andSenderIdNotBetween(String value1, String value2) {
            addCriterion("sender_id not between", value1, value2, "senderId");
            return (Criteria) this;
        }

        public Criteria andSendTmIsNull() {
            addCriterion("send_tm is null");
            return (Criteria) this;
        }

        public Criteria andSendTmIsNotNull() {
            addCriterion("send_tm is not null");
            return (Criteria) this;
        }

        public Criteria andSendTmEqualTo(Date value) {
            addCriterion("send_tm =", value, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmNotEqualTo(Date value) {
            addCriterion("send_tm <>", value, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmGreaterThan(Date value) {
            addCriterion("send_tm >", value, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmGreaterThanOrEqualTo(Date value) {
            addCriterion("send_tm >=", value, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmLessThan(Date value) {
            addCriterion("send_tm <", value, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmLessThanOrEqualTo(Date value) {
            addCriterion("send_tm <=", value, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmIn(List<Date> values) {
            addCriterion("send_tm in", values, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmNotIn(List<Date> values) {
            addCriterion("send_tm not in", values, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmBetween(Date value1, Date value2) {
            addCriterion("send_tm between", value1, value2, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendTmNotBetween(Date value1, Date value2) {
            addCriterion("send_tm not between", value1, value2, "sendTm");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdIsNull() {
            addCriterion("send_company_id is null");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdIsNotNull() {
            addCriterion("send_company_id is not null");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdEqualTo(String value) {
            addCriterion("send_company_id =", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdNotEqualTo(String value) {
            addCriterion("send_company_id <>", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdGreaterThan(String value) {
            addCriterion("send_company_id >", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdGreaterThanOrEqualTo(String value) {
            addCriterion("send_company_id >=", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdLessThan(String value) {
            addCriterion("send_company_id <", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdLessThanOrEqualTo(String value) {
            addCriterion("send_company_id <=", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdLike(String value) {
            addCriterion("send_company_id like", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdNotLike(String value) {
            addCriterion("send_company_id not like", value, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdIn(List<String> values) {
            addCriterion("send_company_id in", values, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdNotIn(List<String> values) {
            addCriterion("send_company_id not in", values, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdBetween(String value1, String value2) {
            addCriterion("send_company_id between", value1, value2, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendCompanyIdNotBetween(String value1, String value2) {
            addCriterion("send_company_id not between", value1, value2, "sendCompanyId");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusIsNull() {
            addCriterion("send_delete_status is null");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusIsNotNull() {
            addCriterion("send_delete_status is not null");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusEqualTo(Integer value) {
            addCriterion("send_delete_status =", value, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusNotEqualTo(Integer value) {
            addCriterion("send_delete_status <>", value, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusGreaterThan(Integer value) {
            addCriterion("send_delete_status >", value, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("send_delete_status >=", value, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusLessThan(Integer value) {
            addCriterion("send_delete_status <", value, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusLessThanOrEqualTo(Integer value) {
            addCriterion("send_delete_status <=", value, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusIn(List<Integer> values) {
            addCriterion("send_delete_status in", values, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusNotIn(List<Integer> values) {
            addCriterion("send_delete_status not in", values, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusBetween(Integer value1, Integer value2) {
            addCriterion("send_delete_status between", value1, value2, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andSendDeleteStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("send_delete_status not between", value1, value2, "sendDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andThemeIdIsNull() {
            addCriterion("theme_id is null");
            return (Criteria) this;
        }

        public Criteria andThemeIdIsNotNull() {
            addCriterion("theme_id is not null");
            return (Criteria) this;
        }

        public Criteria andThemeIdEqualTo(String value) {
            addCriterion("theme_id =", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdNotEqualTo(String value) {
            addCriterion("theme_id <>", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdGreaterThan(String value) {
            addCriterion("theme_id >", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdGreaterThanOrEqualTo(String value) {
            addCriterion("theme_id >=", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdLessThan(String value) {
            addCriterion("theme_id <", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdLessThanOrEqualTo(String value) {
            addCriterion("theme_id <=", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdLike(String value) {
            addCriterion("theme_id like", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdNotLike(String value) {
            addCriterion("theme_id not like", value, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdIn(List<String> values) {
            addCriterion("theme_id in", values, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdNotIn(List<String> values) {
            addCriterion("theme_id not in", values, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdBetween(String value1, String value2) {
            addCriterion("theme_id between", value1, value2, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIdNotBetween(String value1, String value2) {
            addCriterion("theme_id not between", value1, value2, "themeId");
            return (Criteria) this;
        }

        public Criteria andThemeIsNull() {
            addCriterion("theme is null");
            return (Criteria) this;
        }

        public Criteria andThemeIsNotNull() {
            addCriterion("theme is not null");
            return (Criteria) this;
        }

        public Criteria andThemeEqualTo(String value) {
            addCriterion("theme =", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeNotEqualTo(String value) {
            addCriterion("theme <>", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeGreaterThan(String value) {
            addCriterion("theme >", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeGreaterThanOrEqualTo(String value) {
            addCriterion("theme >=", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeLessThan(String value) {
            addCriterion("theme <", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeLessThanOrEqualTo(String value) {
            addCriterion("theme <=", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeLike(String value) {
            addCriterion("theme like", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeNotLike(String value) {
            addCriterion("theme not like", value, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeIn(List<String> values) {
            addCriterion("theme in", values, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeNotIn(List<String> values) {
            addCriterion("theme not in", values, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeBetween(String value1, String value2) {
            addCriterion("theme between", value1, value2, "theme");
            return (Criteria) this;
        }

        public Criteria andThemeNotBetween(String value1, String value2) {
            addCriterion("theme not between", value1, value2, "theme");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeIsNull() {
            addCriterion("send_news_read_type is null");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeIsNotNull() {
            addCriterion("send_news_read_type is not null");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeEqualTo(Integer value) {
            addCriterion("send_news_read_type =", value, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeNotEqualTo(Integer value) {
            addCriterion("send_news_read_type <>", value, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeGreaterThan(Integer value) {
            addCriterion("send_news_read_type >", value, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("send_news_read_type >=", value, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeLessThan(Integer value) {
            addCriterion("send_news_read_type <", value, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeLessThanOrEqualTo(Integer value) {
            addCriterion("send_news_read_type <=", value, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeIn(List<Integer> values) {
            addCriterion("send_news_read_type in", values, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeNotIn(List<Integer> values) {
            addCriterion("send_news_read_type not in", values, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeBetween(Integer value1, Integer value2) {
            addCriterion("send_news_read_type between", value1, value2, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andSendNewsReadTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("send_news_read_type not between", value1, value2, "sendNewsReadType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeIsNull() {
            addCriterion("news_type is null");
            return (Criteria) this;
        }

        public Criteria andNewsTypeIsNotNull() {
            addCriterion("news_type is not null");
            return (Criteria) this;
        }

        public Criteria andNewsTypeEqualTo(Integer value) {
            addCriterion("news_type =", value, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeNotEqualTo(Integer value) {
            addCriterion("news_type <>", value, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeGreaterThan(Integer value) {
            addCriterion("news_type >", value, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("news_type >=", value, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeLessThan(Integer value) {
            addCriterion("news_type <", value, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeLessThanOrEqualTo(Integer value) {
            addCriterion("news_type <=", value, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeIn(List<Integer> values) {
            addCriterion("news_type in", values, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeNotIn(List<Integer> values) {
            addCriterion("news_type not in", values, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeBetween(Integer value1, Integer value2) {
            addCriterion("news_type between", value1, value2, "newsType");
            return (Criteria) this;
        }

        public Criteria andNewsTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("news_type not between", value1, value2, "newsType");
            return (Criteria) this;
        }

        public Criteria andMarkImportantIsNull() {
            addCriterion("mark_important is null");
            return (Criteria) this;
        }

        public Criteria andMarkImportantIsNotNull() {
            addCriterion("mark_important is not null");
            return (Criteria) this;
        }

        public Criteria andMarkImportantEqualTo(Integer value) {
            addCriterion("mark_important =", value, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantNotEqualTo(Integer value) {
            addCriterion("mark_important <>", value, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantGreaterThan(Integer value) {
            addCriterion("mark_important >", value, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantGreaterThanOrEqualTo(Integer value) {
            addCriterion("mark_important >=", value, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantLessThan(Integer value) {
            addCriterion("mark_important <", value, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantLessThanOrEqualTo(Integer value) {
            addCriterion("mark_important <=", value, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantIn(List<Integer> values) {
            addCriterion("mark_important in", values, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantNotIn(List<Integer> values) {
            addCriterion("mark_important not in", values, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantBetween(Integer value1, Integer value2) {
            addCriterion("mark_important between", value1, value2, "markImportant");
            return (Criteria) this;
        }

        public Criteria andMarkImportantNotBetween(Integer value1, Integer value2) {
            addCriterion("mark_important not between", value1, value2, "markImportant");
            return (Criteria) this;
        }

        public Criteria andReceiverIdIsNull() {
            addCriterion("receiver_id is null");
            return (Criteria) this;
        }

        public Criteria andReceiverIdIsNotNull() {
            addCriterion("receiver_id is not null");
            return (Criteria) this;
        }

        public Criteria andReceiverIdEqualTo(String value) {
            addCriterion("receiver_id =", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdNotEqualTo(String value) {
            addCriterion("receiver_id <>", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdGreaterThan(String value) {
            addCriterion("receiver_id >", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdGreaterThanOrEqualTo(String value) {
            addCriterion("receiver_id >=", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdLessThan(String value) {
            addCriterion("receiver_id <", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdLessThanOrEqualTo(String value) {
            addCriterion("receiver_id <=", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdLike(String value) {
            addCriterion("receiver_id like", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdNotLike(String value) {
            addCriterion("receiver_id not like", value, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdIn(List<String> values) {
            addCriterion("receiver_id in", values, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdNotIn(List<String> values) {
            addCriterion("receiver_id not in", values, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdBetween(String value1, String value2) {
            addCriterion("receiver_id between", value1, value2, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverIdNotBetween(String value1, String value2) {
            addCriterion("receiver_id not between", value1, value2, "receiverId");
            return (Criteria) this;
        }

        public Criteria andReceiverTmIsNull() {
            addCriterion("receiver_tm is null");
            return (Criteria) this;
        }

        public Criteria andReceiverTmIsNotNull() {
            addCriterion("receiver_tm is not null");
            return (Criteria) this;
        }

        public Criteria andReceiverTmEqualTo(Date value) {
            addCriterion("receiver_tm =", value, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmNotEqualTo(Date value) {
            addCriterion("receiver_tm <>", value, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmGreaterThan(Date value) {
            addCriterion("receiver_tm >", value, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmGreaterThanOrEqualTo(Date value) {
            addCriterion("receiver_tm >=", value, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmLessThan(Date value) {
            addCriterion("receiver_tm <", value, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmLessThanOrEqualTo(Date value) {
            addCriterion("receiver_tm <=", value, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmIn(List<Date> values) {
            addCriterion("receiver_tm in", values, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmNotIn(List<Date> values) {
            addCriterion("receiver_tm not in", values, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmBetween(Date value1, Date value2) {
            addCriterion("receiver_tm between", value1, value2, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverTmNotBetween(Date value1, Date value2) {
            addCriterion("receiver_tm not between", value1, value2, "receiverTm");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdIsNull() {
            addCriterion("receiver_company_id is null");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdIsNotNull() {
            addCriterion("receiver_company_id is not null");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdEqualTo(String value) {
            addCriterion("receiver_company_id =", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdNotEqualTo(String value) {
            addCriterion("receiver_company_id <>", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdGreaterThan(String value) {
            addCriterion("receiver_company_id >", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdGreaterThanOrEqualTo(String value) {
            addCriterion("receiver_company_id >=", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdLessThan(String value) {
            addCriterion("receiver_company_id <", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdLessThanOrEqualTo(String value) {
            addCriterion("receiver_company_id <=", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdLike(String value) {
            addCriterion("receiver_company_id like", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdNotLike(String value) {
            addCriterion("receiver_company_id not like", value, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdIn(List<String> values) {
            addCriterion("receiver_company_id in", values, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdNotIn(List<String> values) {
            addCriterion("receiver_company_id not in", values, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdBetween(String value1, String value2) {
            addCriterion("receiver_company_id between", value1, value2, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverCompanyIdNotBetween(String value1, String value2) {
            addCriterion("receiver_company_id not between", value1, value2, "receiverCompanyId");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeIsNull() {
            addCriterion("receiver_news_read_type is null");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeIsNotNull() {
            addCriterion("receiver_news_read_type is not null");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeEqualTo(Integer value) {
            addCriterion("receiver_news_read_type =", value, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeNotEqualTo(Integer value) {
            addCriterion("receiver_news_read_type <>", value, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeGreaterThan(Integer value) {
            addCriterion("receiver_news_read_type >", value, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("receiver_news_read_type >=", value, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeLessThan(Integer value) {
            addCriterion("receiver_news_read_type <", value, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeLessThanOrEqualTo(Integer value) {
            addCriterion("receiver_news_read_type <=", value, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeIn(List<Integer> values) {
            addCriterion("receiver_news_read_type in", values, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeNotIn(List<Integer> values) {
            addCriterion("receiver_news_read_type not in", values, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeBetween(Integer value1, Integer value2) {
            addCriterion("receiver_news_read_type between", value1, value2, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverNewsReadTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("receiver_news_read_type not between", value1, value2, "receiverNewsReadType");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusIsNull() {
            addCriterion("receiver_delete_status is null");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusIsNotNull() {
            addCriterion("receiver_delete_status is not null");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusEqualTo(Integer value) {
            addCriterion("receiver_delete_status =", value, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusNotEqualTo(Integer value) {
            addCriterion("receiver_delete_status <>", value, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusGreaterThan(Integer value) {
            addCriterion("receiver_delete_status >", value, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("receiver_delete_status >=", value, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusLessThan(Integer value) {
            addCriterion("receiver_delete_status <", value, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusLessThanOrEqualTo(Integer value) {
            addCriterion("receiver_delete_status <=", value, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusIn(List<Integer> values) {
            addCriterion("receiver_delete_status in", values, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusNotIn(List<Integer> values) {
            addCriterion("receiver_delete_status not in", values, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusBetween(Integer value1, Integer value2) {
            addCriterion("receiver_delete_status between", value1, value2, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andReceiverDeleteStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("receiver_delete_status not between", value1, value2, "receiverDeleteStatus");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIsNull() {
            addCriterion("create_people_id is null");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIsNotNull() {
            addCriterion("create_people_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdEqualTo(String value) {
            addCriterion("create_people_id =", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotEqualTo(String value) {
            addCriterion("create_people_id <>", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdGreaterThan(String value) {
            addCriterion("create_people_id >", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdGreaterThanOrEqualTo(String value) {
            addCriterion("create_people_id >=", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLessThan(String value) {
            addCriterion("create_people_id <", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLessThanOrEqualTo(String value) {
            addCriterion("create_people_id <=", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLike(String value) {
            addCriterion("create_people_id like", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotLike(String value) {
            addCriterion("create_people_id not like", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIn(List<String> values) {
            addCriterion("create_people_id in", values, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotIn(List<String> values) {
            addCriterion("create_people_id not in", values, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdBetween(String value1, String value2) {
            addCriterion("create_people_id between", value1, value2, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotBetween(String value1, String value2) {
            addCriterion("create_people_id not between", value1, value2, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreateTmIsNull() {
            addCriterion("create_tm is null");
            return (Criteria) this;
        }

        public Criteria andCreateTmIsNotNull() {
            addCriterion("create_tm is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTmEqualTo(Date value) {
            addCriterion("create_tm =", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotEqualTo(Date value) {
            addCriterion("create_tm <>", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmGreaterThan(Date value) {
            addCriterion("create_tm >", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmGreaterThanOrEqualTo(Date value) {
            addCriterion("create_tm >=", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmLessThan(Date value) {
            addCriterion("create_tm <", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmLessThanOrEqualTo(Date value) {
            addCriterion("create_tm <=", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmIn(List<Date> values) {
            addCriterion("create_tm in", values, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotIn(List<Date> values) {
            addCriterion("create_tm not in", values, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmBetween(Date value1, Date value2) {
            addCriterion("create_tm between", value1, value2, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotBetween(Date value1, Date value2) {
            addCriterion("create_tm not between", value1, value2, "createTm");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIsNull() {
            addCriterion("update_people_id is null");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIsNotNull() {
            addCriterion("update_people_id is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdEqualTo(String value) {
            addCriterion("update_people_id =", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotEqualTo(String value) {
            addCriterion("update_people_id <>", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdGreaterThan(String value) {
            addCriterion("update_people_id >", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdGreaterThanOrEqualTo(String value) {
            addCriterion("update_people_id >=", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLessThan(String value) {
            addCriterion("update_people_id <", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLessThanOrEqualTo(String value) {
            addCriterion("update_people_id <=", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLike(String value) {
            addCriterion("update_people_id like", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotLike(String value) {
            addCriterion("update_people_id not like", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIn(List<String> values) {
            addCriterion("update_people_id in", values, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotIn(List<String> values) {
            addCriterion("update_people_id not in", values, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdBetween(String value1, String value2) {
            addCriterion("update_people_id between", value1, value2, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotBetween(String value1, String value2) {
            addCriterion("update_people_id not between", value1, value2, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIsNull() {
            addCriterion("update_tm is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIsNotNull() {
            addCriterion("update_tm is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTmEqualTo(Date value) {
            addCriterion("update_tm =", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotEqualTo(Date value) {
            addCriterion("update_tm <>", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmGreaterThan(Date value) {
            addCriterion("update_tm >", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmGreaterThanOrEqualTo(Date value) {
            addCriterion("update_tm >=", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmLessThan(Date value) {
            addCriterion("update_tm <", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmLessThanOrEqualTo(Date value) {
            addCriterion("update_tm <=", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIn(List<Date> values) {
            addCriterion("update_tm in", values, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotIn(List<Date> values) {
            addCriterion("update_tm not in", values, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmBetween(Date value1, Date value2) {
            addCriterion("update_tm between", value1, value2, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotBetween(Date value1, Date value2) {
            addCriterion("update_tm not between", value1, value2, "updateTm");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusIsNull() {
            addCriterion("delete_status is null");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusIsNotNull() {
            addCriterion("delete_status is not null");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusEqualTo(Integer value) {
            addCriterion("delete_status =", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusNotEqualTo(Integer value) {
            addCriterion("delete_status <>", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusGreaterThan(Integer value) {
            addCriterion("delete_status >", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("delete_status >=", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusLessThan(Integer value) {
            addCriterion("delete_status <", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) {
            addCriterion("delete_status <=", value, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusIn(List<Integer> values) {
            addCriterion("delete_status in", values, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusNotIn(List<Integer> values) {
            addCriterion("delete_status not in", values, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusBetween(Integer value1, Integer value2) {
            addCriterion("delete_status between", value1, value2, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("delete_status not between", value1, value2, "deleteStatus");
            return (Criteria) this;
        }

        public Criteria andPMessageIdIsNull() {
            addCriterion("p_message_id is null");
            return (Criteria) this;
        }

        public Criteria andPMessageIdIsNotNull() {
            addCriterion("p_message_id is not null");
            return (Criteria) this;
        }

        public Criteria andPMessageIdEqualTo(String value) {
            addCriterion("p_message_id =", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdNotEqualTo(String value) {
            addCriterion("p_message_id <>", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdGreaterThan(String value) {
            addCriterion("p_message_id >", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdGreaterThanOrEqualTo(String value) {
            addCriterion("p_message_id >=", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdLessThan(String value) {
            addCriterion("p_message_id <", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdLessThanOrEqualTo(String value) {
            addCriterion("p_message_id <=", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdLike(String value) {
            addCriterion("p_message_id like", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdNotLike(String value) {
            addCriterion("p_message_id not like", value, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdIn(List<String> values) {
            addCriterion("p_message_id in", values, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdNotIn(List<String> values) {
            addCriterion("p_message_id not in", values, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdBetween(String value1, String value2) {
            addCriterion("p_message_id between", value1, value2, "pMessageId");
            return (Criteria) this;
        }

        public Criteria andPMessageIdNotBetween(String value1, String value2) {
            addCriterion("p_message_id not between", value1, value2, "pMessageId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}